/**
 * Created On: Sep 23, 2012
 */
package com.athena.service.student;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.athena.api.model.AttendanceRecord;
import com.athena.api.student.IStudentService;
import com.athena.dal.entities.Marks;
import com.athena.dal.entities.RoutineInstance;

/**
 * Default implementatiom of {@link IStudentService}.
 * 
 * @author Ashish Kumar Sinha <aksinha.mail@gmail.com>
 * Version 1.0
 */
@Service("studentService")
@Scope((BeanDefinition.SCOPE_SINGLETON))
public class StudentService implements IStudentService {

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getClassRoutine(int, int, java.util.Date, java.util.Date)
	 */
	@Override
	public List<RoutineInstance> getSubjectRoutine(int studentid, int subjectid,
			Date startDate, Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getClassRoutine(int, java.util.Date, java.util.Date)
	 */
	@Override
	public List<RoutineInstance> getClassRoutine(int studentid, Date startDate,
			Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getClassRoutine(int)
	 */
	@Override
	public List<RoutineInstance> getClassRoutine(int studentid) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getPerformanceReportbyExamType(int, java.util.List)
	 */
	@Override
	public Map<Integer, Map<String, Marks>> getPerformanceReportbyExamType(
			int studentId, List<Integer> examTypes) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getPerformanceReportbyExamType(int)
	 */
	@Override
	public Map<Integer, Map<String, Integer>> getPerformanceReportbyExamType(
			int studentId) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getPerformanceReportFromDate(int, java.util.Date)
	 */
	@Override
	public Map<Integer, Map<String, Integer>> getPerformanceReportFromDate(
			int studentId, Date startdate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getAttendanceBySubjects(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Map<Date, Set<AttendanceRecord>> getAttendanceBySubjects(
			int studentId, Date startDate, Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#absentClassesbySubjects(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Date[] absentClassesbySubjects(int studentId, Date startDate,
			Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getAttendanceByDays(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Map<Date, Boolean> getAttendanceByDays(int studentId,
			Date startDate, Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#absentClassesbyDays(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Date[] absentClassesbyDays(int studentId, Date startDate,
			Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#absentDays(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Date[] absentDays(int studentId, Date startDate, Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#getFeePaymentHistory(int, java.util.Date, java.util.Date)
	 */
	@Override
	public Map<Date, String> getFeePaymentHistory(int studentId,
			Date startDate, Date endDate) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#feesPaid(int)
	 */
	@Override
	public Map<Date, String> feesPaid(int studentId) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#payFee(int, java.util.Date, double)
	 */
	@Override
	public String payFee(int studentId, Date Date, double amount) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.athena.api.student.IStudentService#feeDue()
	 */
	@Override
	public double feeDue() {
		// TODO Auto-generated method stub
		return 0;
	}

}
